home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4 / Atari Forever 4.iso / FALCON / DEMOSRGB / FD_RGB06 / U_TRACK / PATCH / FPATCH.S < prev   
Encoding:
Text File  |  1998-03-14  |  4.8 KB  |  173 lines

  1. * ######################################################################
  2. * FPATCH 1.0
  3. * ######################################################################
  4.  
  5.     SECTION TEXT 
  6.  
  7. * CALCUL DE LA TAILLE DU PROGRAMME
  8.               
  9.           MOVE.L     4(A7),A4
  10.           MOVE.L    12(A4),D6 
  11.           ADD.L   20(A4),D6 
  12.           ADD.L   28(A4),D6 
  13.           ADD.L   #256,D6
  14.  
  15. * SUPERVISEUR
  16.  
  17.           PEA    0.W 
  18.           MOVE.W  #$20,-(A7)
  19.           TRAP    #1
  20.           ADDQ.L  #6,A7 
  21.           MOVE.L  D0,D7 
  22.  
  23. * VERIFIE VERSION DU TOS
  24.  
  25.           MOVE.L     $4F2.W,A0         * A0 = HEADER TOS
  26.           MOVE.L     8(A0),A0        * A0 = ADRESSE TOS
  27.           MOVE.W  2(A0),D0        * D0 = VERSION DU TOS
  28.           SUB.W   #$400,D0        * TOS < 4.00 ?
  29.           BMI    BAD_TOS            * OUI -> SAUT
  30.           CMP.W   #5,D0             * SUPERIEUR OU EGAL A 4.05 ?
  31.           BGE    BAD_TOS         * OUI -> SAUT
  32.  
  33. * ----------------------------------------------------------------------
  34. * INITIALISATION DU SON
  35. * ----------------------------------------------------------------------
  36.  
  37. * CONNECTE LA MATRICE
  38.  
  39.           MOVE.W     #1,-(A7)        * NO HANDCHECK
  40.           CLR.W      -(A7)            * PRESCALE=0
  41.           CLR.W    -(A7)            * HORLOGE 25.175 MHZ
  42.           MOVE.W  #8,-(A7)        * DESTINATION DAC
  43.           CLR.W    -(A7)            * SOURCE DMAPLAY
  44.           MOVE.W  #139,-(A7)        * FONCTION DEVCONNECT
  45.           TRAP    #14          
  46.           LEA    12(A7),A7        
  47.  
  48. * INITIALISE LE MODE SONORE
  49.  
  50.           CLR.W   -(A7)             * 8 BITS STEREO
  51.           MOVE.W  #132,-(A7)        * FONCTION SETMODE
  52.           TRAP    #14 
  53.           ADDQ.L  #4,A7 
  54.  
  55. * INITIALISE GAINS EN ENTREE GAUCHE / DROITE
  56.  
  57.           MOVE.W  #64,-(A7)    
  58.           MOVE.W  #2,-(A7)        * LTGAIN
  59.           MOVE.W  #130,-(A7)        * FONCTION SOUNDCMD
  60.           TRAP    #14
  61.           MOVE.W  #3,2(A7)        * RTGAIN
  62.           TRAP    #14 
  63.           ADDQ.L  #6,A7 
  64.       
  65. * INITIALISE PREDIVISION (PRESCALE DANS DEVCONNECT=0)
  66.       
  67.           MOVE.W  #3,-(A7)        * 50 KHZ
  68.           MOVE.W  #6,-(A7)        * SETPRESCALE
  69.           MOVE.W  #130,-(A7)        * FONCTION SOUNDCMD
  70.           TRAP    #14 
  71.  
  72. * INITIALISE ADDER SUR MATRICE+ADC
  73.  
  74.           MOVE.W  #4,2(A7)        * FONCTION ADDERIN
  75.           TRAP    #14
  76.       
  77. * INITIALISE ENTREE ADC SUR PSG
  78.  
  79.           MOVE.W  #5,2(A7)        * FONCTION ADCINPUT
  80.           TRAP    #14
  81.           ADDQ.W  #6,A7 
  82.  
  83. * -----------------------------------------------------------------------
  84. * CORRIGE BUG BCONMAP
  85. * -----------------------------------------------------------------------
  86.  
  87.           MOVE.L  $B4.W,OLD_BIOS        * SAUVE VECTEUR BIOS 
  88.           MOVE.L    #NEW_BIOS,$B4.W        * INSTALLE NOUVEAU
  89.  
  90.  
  91. * FIN DU PROGRAMME
  92.  
  93.           MOVE.L  D7,-(A7)        * PILE USER 
  94.           MOVE.W  #$20,-(A7)        * REPASSE EN USER MODE
  95.           TRAP    #1
  96.  
  97.           PEA     MSG_OK(PC)        * AFFICHE MESSAGE OK
  98.           MOVE.W  #9,-(A7)
  99.           TRAP    #1
  100.  
  101.           CLR.W   (A7)            * MESSAGE OK
  102.           MOVE.L  D6,-(A7)        * TAILLE DU PROGRAMME
  103.           MOVE.W  #$31,-(A7)        * FONCTION PTERMRES
  104.           TRAP    #1
  105.  
  106. * -------------------------------------------------------------------
  107. * MESSAGE D'ERREUR
  108. * -------------------------------------------------------------------
  109.  
  110. BAD_TOS:
  111.           MOVE.L  D7,-(A7)        * REPASSE EN USER
  112.           MOVE.W  #$20,-(A7)
  113.           TRAP    #1
  114.  
  115.           PEA     MSG_ERR(PC)         * AFFICHE MESSAGE D'ERREUR
  116.           MOVE.W  #9,-(A7)
  117.           TRAP    #1
  118.  
  119.           CLR.W  (A7)            * QUITTE
  120.           TRAP    #1
  121.  
  122. * -------------------------------------------------------------------
  123. * TRAP DETOURNE
  124. * -------------------------------------------------------------------
  125.  
  126. * ~~~~~~~~~~~~~~~ 
  127. * BIOS (TRAP #13)
  128. * ~~~~~~~~~~~~~~~
  129.  
  130. TRAP_13:
  131.     BTST     #5,(A7)         * APPEL EN SUPERVISEUR ?
  132.           BEQ.S   USER_BIOS         * NON -> SUITE
  133.           LEA     8(A7),A0        * OUI -> SAUTE RETOUR+SR+STACK FRAME
  134.           BRA.S   SUITE_BIOS 
  135.  
  136. USER_BIOS:
  137.     MOVE.L     USP,A0            * A0 = PILE USER
  138.  
  139. SUITE_BIOS:
  140.     MOVE.W    (A0),D0         * D0 = N. DE FONCTION BIOS
  141.           CMP.W    #1,D0             * BCONSTAT ?
  142.           BEQ.S    FIX_BCONMAP        * OUI -> SAUT
  143.           CMP.W      #2,D0             * BCONIN ?
  144.           BEQ.S      FIX_BCONMAP         * OUI -> SAUT
  145.           CMP.W      #3,D0             * BCONOUT ?
  146.           BEQ.S      FIX_BCONMAP         * OUI -> SAUT
  147.           CMP.W      #8,D0             * BCOSTAT ?
  148.           BNE.S      FIN_BIOS         * NON -> FIN
  149.  
  150. FIX_BCONMAP:
  151.     MOVE.W     2(A0),D0        * D0 = PERIPHERIQUE
  152.           CMP.W      #7,D0             * PERIPHERIQUE 7 (LAN) ?
  153.           BNE.S      FIN_BIOS         * NON -> FIN
  154.           MOVE.W     #1,2(A0)        * OUI -> PERIPH. = AUX
  155. FIN_BIOS:
  156.     MOVEA.L    OLD_BIOS(PC),A0        * A0 = ANCIEN VECTEUR BIOS
  157.           JMP     (A0)            * ON Y SAUTE
  158.  
  159. * ----------------------------------------------------------------------- *
  160.      SECTION DATA
  161.      
  162.               DC.B    "XBRA_FP1"
  163. OLD_BIOS:    DS.L    1 
  164. NEW_BIOS:    DC.W    $4EF9    ; CODE JMP 
  165.               DC.L    TRAP_13 
  166. MSG_ERR:    DC.B    13,10
  167.               DC.B    "This version of TOS does not need FPATCH.PRG.",10,13,0
  168.               EVEN
  169. MSG_OK:        DC.B    13,10
  170.               DC.B    "FPATCH 1.0 installed",13,10,$00 
  171.  
  172. * ----------------------------------------------------------------------- *
  173.